.\" Copyright (c) 2019, Oracle.  All rights reserved.
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" SPDX-License-Identifier: GPL-2.0+
.\" %%%LICENSE_END
.TH IOCTL-XFS-GOINGDOWN 2 2019-06-17 "XFS"
.SH NAME
ioctl_xfs_goingdown \- shut down an XFS filesystem
.SH SYNOPSIS
.br
.B #include <xfs/xfs_fs.h>
.PP
.BI "int ioctl(int " fd ", XFS_IOC_GOINGDOWN, uint32_t " flags );
.SH DESCRIPTION
Shuts down a live XFS filesystem.
This is a software initiated hard shutdown and should be avoided whenever
possible.
After this call completes, the filesystem ill be totally unusable until the
filesystem has been unmounted and remounted.

.PP
.I flags
can be one of the following:
.RS 0.4i
.TP
.B XFS_FSOP_GOING_FLAGS_DEFAULT
Flush all dirty data and metadata to disk, flush pending transactions
to the log, and shut down.
.TP
.B XFS_FSOP_GOING_FLAGS_LOGFLUSH
Flush all pending metadata transactions to the log and shut down, leaving
all dirty data unwritten.
.TP
.B XFS_FSOP_GOING_FLAGS_NOLOGFLUSH
Shut down immediately, without writing pending transactions or dirty data
to disk.

.SH RETURN VALUE
On error, \-1 is returned, and
.I errno
is set to indicate the error.
.PP
.SH ERRORS
Error codes can be one of, but are not limited to, the following:
.TP
.B EFSBADCRC
Metadata checksum validation failed while performing the query.
.TP
.B EFSCORRUPTED
Metadata corruption was encountered while performing the query.
.TP
.B EIO
An I/O error was encountered while performing the query.
.TP
.B EPERM
Caller did not have permission to shut down the filesystem.
.SH CONFORMING TO
This API is specific to XFS filesystem on the Linux kernel.
.SH SEE ALSO
.BR ioctl (2)
